================================
Lasso Professional Server 8.5
Change Notes

Version: 8.5.2 (Revision 1)
Release: March 19, 2007
================================

- Introduction
- Revision 1
- New Features
- Updated Features and Fixes


--------------------------------
Introduction
--------------------------------

Lasso Professional 8.5.2 is a free update to Lasso Professional 8.5 which is recommended for all users. This update includes important security fixes, documentation updates, and fixes for issues which have been reported since Lasso Professional 8.5 was released. Consult the Lasso 8.5 Setup Guide and Lasso 8.5 Language Guide for information about the new features in this version.


--------------------------------
Revision 1
--------------------------------

This revision was released to correct an issue in the Web server connectors which shipped with Lasso 8.5.2.  The version of Lasso will still be reported as 8.5.2 within Lasso Service.

- The Web server connectors have been updated to correct an issue which caused the names of files uploaded from Windows clients to be malformed.


--------------------------------
New Features
--------------------------------

- FileMaker - A new paramter for the [Field] tag makes it easier to update related records in FileMaker.  The tag [Field: 'relation::field', -RecordID] will return the record ID for the related record which contains the specified field.  Within an inline the specified field can then be updated with the following line.  See the Language Guide for more details.

	'relation::field.' + (Field: 'relation::field', -RecordID) = 'new value'

- Chart FX will now apply smoothing by default. A new tag [ChartFX->Smooth] can be used to adjust the smoothing preference. The tag accepts -Fill, -Border, -Text, and -None parameters. For example, [$myChart->(Smooth: -Fill, -Border, -Text)] will turn on all available smoothing. The default setting produces the best looking chart.

- Note - The LassoService.RPT file which was introduced in beta 4 for reporting Windows crashes has been disabled in this release. We are currently evaluating what the best method of reporting crashes on Windows is.

- New [LJAX_Start] and [LJAX_End] tags which allow the dynamic portion of a page to be identified in a less obtrusive manner than using [LJAX_Target] ... [/LJAX_Target]. The [LJAX_Start] and [LJAX_End] tags allow you to mark off what portion of a page should be returned as part of dynamic LJAX updates. Any Lasso code on your page before [LJAX_Start] or after [LJAX_End] will be processed, but the output of those tags will be suppressed.

- New [LJAX_HasTarget] tag makes it easy to test whether a page is being loaded through a dynamic LJAX update within existing page logic. [LJAX_HasTarget] accepts the same parameters as the opening [LJAX_Target] tag and returns True if the current page is being loaded through LJAX and the specified target has been requested.

- HTML script blocks within dynamic updates are now executed immediately after the new elements are merged into the current page. This makes it possible to embed JavaScript into your dynamic updates.

- ChartFX - A new tag [ChartFX->Data] is included which outputs the binary data of a generated chart directly rather than rendering it into a temporary location. This allows generated charts to be served using [File_Serve] or stored in a database.

- ChartFX - A new tag [ChartFX_Records] returns a records array which is formatted in the proper format to be passed to the [ChartFX->SetLassoData] tag. Specifically, the field names are included as the first row of the records array. If one or more -ReturnField parameters are specified then only those fields will be included in the records array. If one more -ExcludeField parameters are specified then those fields not be included in the records array. -Fields=(Array) can be used to specify an array of alternate field names to use. Finally, if -Inverse is specified then the arrays are inverted to a format useful for making pie charts.

- ChartFX - A new tag [ChartFX_Serve] accepts a [ChartFX] chart as a parameter and serves the generated PNG file in place of the current page. Optional parameters include -File to specify the name of the downloaded file and -Type which defaults to image/png. If -Inline is specified then the image will be served inline in the current respond rather than as an attachment. See the [File_Serve] tags for more details about these parameters.

- The [Redirect_URL] tag will now generate a 301 MOVED redirect if either -Type='301' or -Type='MOVED' is specified. The [Redirect_URL] tag now validates the HTTP header variable so it can generate a proper redirect header even if the HTTP header has been emptied.

- A new [Error_Reset] tag has been added which simply resets the error code to 0 and the error message to empty.

- A new pair of tags [Error_Push] and [Error_Pop] can be used to store the current error code temporarily and then restore it later. These tags can be used around a block of code which might change the error code and message.

- Lasso can now create a child handoff log in order to help debug Lasso's built-in site routing. In order to use this option, create a file called "lasso8service.conf" in the Lasso Professional 8 application folder. The "childhandofflog" option should be specified with the name of a log file. The named file will be created within the Lasso Professional 8 application folder.

childhandofflog CHILD_HANDOFF_LOG.TXT

Each request which is handled by Lasso will generate a line in the log specifying the date/time, host name, file path, and site ID.

[11/28/06 15:55:48] www.example.com /default.lasso 1

Once the site setup has been debugged this option should be disabled in order to prevent the log file from becoming very large.

- The [NoProcess] ... [/NoProcess] tag can now be used in LassoScript. However, no output will be generated from this container within LassoScript. Instead, the tags will work essentially the same as the multi-line comment characters /* ... */. If you want to output JavaScript from LassoScript it should be output as quoted strings.

- A custom build of ImageMagick is now included with Lasso on all three platforms. This should correct several problems which users were encountering with the image tags. It is no longer necessary to install ImageMagick separately on Windows or Linux.

- The [XML->Transform] tag now accepts, as a second parameter, an optional array of name/value pairs which are made available to the transformation as parameters.


--------------------------------
Updated Features and Fixes
--------------------------------

- Java on Linux - Lasso will now look in the /usr/java/latest/ folder for an installation of Java. The latest Java Runtime Environment (JRE) 6 should be installed for best compatibility with Lasso.  See the release notes for details about where to download the JRE.

- The new LJAX capability of running JavaScript from HTML script blocks contained in the response to a Lasso.includeTarget() function call should now work properly in IE7.

- The [Link_...] tags will no longer include empty action parameters. This restores the behavior of earlier versions of Lasso.

- An issue which could make it difficult to import settings from one site to another through the SiteAdmin Import/Export section has been corrected.

- An issue which caused the host permissions to be listed incorrectly in SiteAdmin has been corrected. This issue was also causing an invalid SQL statement to be logged to the console.

- Fixed a memory leak in the treemap container type.

- The contents of the Lasso Reference has been updated and several cosmetic changes have been made to the interface. The PDF documentation has been updated. Build instructions for ImageMagick are now included in the Documentation folder.

- An issue which could prevent the [LJAX_Include] tag from functioning properly has also been corrected.

- [File_Exists] will now return False when it is passed an invalid parameter. Most of the file tags will return an error if they are passed an invalid parameter, but this tag will return False so that it can be used to validate a file name before it is used in other file tags. 

- An issue which could cause Lasso to report the wrong error when a file security check failed has been corrected.

- The limit on recursive regular expression patterns has been modified to target only recursive matches. This should prevent the limit from causing problems for many common regular expression patterns. The regular expression library used by Lasso has been updated to PCRE 6.7.

- SQL Server 2005 - Lasso no longer require VIEW ANY DEFINITION permission in order to access a SQL Server 2005 data source. Lasso is now able to list available databases without relying on the sp_databases stored procedure.

- SQL Server - Will now report a proper [Found_Count] when using the built-in connector.

- SQL Server - An issue where dates prior to 1970 would appear in Lasso incorrectly has been fixed. [6304]

- [Math_Round] should now return the proper value for all parameters. [6275]

- The [Math_Pow] tag will now output its results with full precision. This should correct errors some users have seen when calculating interest. [6353]

- The [Date->Week] tag should now return the proper value for days that fall in the first or last week of a year. Note that either the first or last week of the year may fall partly in the previous or next year. In this case the first days of the year may be part of week 52 or week 53 or the last days of the year may be part of week 1. Weeks in Lasso start on Sunday by default. The optional parameter -Monday will make the [Date->Week] tag correspond with the ISO standard for weeks. [6327]

- [Date->DayofYear] will now return the proper value after a date has been manipulated with [Date->Add] or [Date->Subtract]

- An issue which could cause Lasso to crash if the properties of of a type instance was modified has been corrected. [6312]

- Variable references can now be stored properly in maps. [6307]

- MySQL - Performing a -Delete action on a group of records specified using a new -Key parameter should now work properly. [6297]

- Database Browser - The file type detector for database browser imports has been improved to recognize more comma delineated files. The SQL browser will no longer mangle SQL statements containing Unicode characters (also applies to the Site and Server Administration interfaces).

- The Lasso Settings Migrator has been modified so it will run properly in certain older versions of Lasso.

- A custom data type defined with -Prototype will no longer be copied immediately after it is created. This should prevent an issue which could cause a stored reference to a type instance to fail only when the referenced instance was a prototype. [6340]

- Custom data types defined with -Prototype can now be unloaded using [Namespace_Unload]. This allows a custom data type with -Prototype to be defined in a LassoLibraries file. [6035]

- The -ClientUsername and -ClientPassword parameters will now be blanked out when they are displayed in error messages. This helps to prevent the inadvertant display of usernames and passwords. This same protection is already in place for -Username and -Password parameters. [6348]

- Mail - The SMTP sender will now issue a proper EHLO command when the SMTP IP has been set to a domain name. The SMTP sender should now handle errors reported for the EHLO command better.

- Mail - The email queue will now hold on to error messages even when the messages or parts have been deleted. Requeueing of message parts should now work better.

- ImageMagick has been updated to version 6.3.1.

- The [DNS_Lookup] tag could return an error when the DNS record for a domain could not be found. The [DNS_Lookup] tag is now able to parse this type of DNS record.

- Linux - Lasso 8.5.2 relies on the /etc/localtime file being properly linked to the desired time zone for the computer. Timezone files are located in /usr/share/zoneinfo/{country or ocean}/{zone}. For example, a computer on the East coast of the United States would want /etc/localtime to be a symlink to /usr/share/zoneinfo/America/New_York. The proper zoneinfo file name can be determined by using the tzselect utility. This utility will walk you through selecting the proper zone file name, which can then be used to symlink to /etc/localtime. Mac and Windows both rely on the time zone set in the OS.

- A memory leak has been corrected.

- URL Rewrite can now be disabled permanently (across restarts) or stopped temporarily.

- When an SMTP error occurs Lasso now records the error on the current message, closes the SMTP connection, and requeues all the other pending messages. In earlier versions a single SMTP error could be reported for every pending message.

- The SMTP connection is closed for any non-4xx error. This prevents a situation where the sender gets "off by one" and can't match up commands with responses.

- Orphaned email parts and errors are now cleaned up only once at startup.

- Message status will be updated more quickly so the queue status reported in Site Administration is more up to date.

- Many inlines have been converted to use batch operations. This should greatly speed up some operations. Other inlines have been optimized.

- Status messages are improved. Each now includes the queue number. Messages are more informative and include remote host or other information when appropriate.

- Error messages are improved. All error messages are now cleaned to remove implementation details. The level of some error messages have been modified. Some error messages now state how the error applies to the email sender.

- Cosmetic errors in the Site Administration interface have been corrected including the display of email errors, the display of thread ages, and others.

- Corrected an issue which could cause incoming URL requests to be routed to the first Lasso site if they contained an apostrophe or other uncommon characters in the host name or file name.

- The internal SQLite database will now perform a VACUUM operation each time Lasso starts up. This should help prevent some internal tables like the errors table from growing over time.

- [Field] data is now returned as a copy preventing frozen value errors.

- An issue with the -Required tag in HTML forms not properly triggering an error message has been corrected.

- The LassoApp builder will now skip directories whose names begin with a period. Files whose names begin with a period were already skipped. This allows the LassoApp builder to automatically ignore files and folders inserted by Eclipse, CVS, and other utilities.

- The === symbol will no longer return true when non-null values are compared against Null. The [...->(IsA: 'null')] tag will no longer return true when called against non-null values. [6143]

- An issue which could cause the [Iterate] ... [/Iterate] tag to empty the final value in an iterate option has been corrected. [6230]

- Passing an inline tag to another inline tag will now generate a proper error messages. [6159]

- The file tags now handle invalid parameters better including null values. The Lasso page will no longer hang when [File_Read] is called with an end position greater than the end of the file size. [6135, 6285]

- A crash which could occur when an invalid date was passed to the [Date_Format] tag has been corrected. [6272]

- The date tags can handle 64 bit values again. Several issues with date calculations returning incorrect results have been corrected. The sign of [Duration] tag will now be reported correctly. [6178, 6246]

- An issue using certain fonts with the [Image->Annotate] tag has been corrected.

- The JVM can leak handles under certain circumstances eventually causing Lasso Service to crash. This leak has been mitigated by ensuring that it only occurs once per page rather than once per Java-based tag call. The underlying leak should be corrected in the forthcoming JRE 5.0 Update 10 release.

- A potential crash has been corrected when using the ->SortWith tag with a non-deterministic comparator, that is a comparator which does not guarantee a unique ordering of the elements within the compound data type.

- Lasso's error reporting has been improved in order to make it more clear when an error has been reported by Lasso or by a library such as the XML parser or CURL.

- Error handling has been improved in several internal tags including [Email_Immediate], [Valid_Email], [Iterator], [DNS_Lookup], [File_Stream], [File_StreamCopy], and [HTTP_GetFile]. These tags will no longer be affected by an error message set earlier on the page and these tags will no longer change the error message as a side effect unless an actual error occured within the tag.

- Error handling has been improved in several internal systems including the SMTP queue, namespace loader, session tracker, and URL rewrite system. In particular, this should correct a problem users were experiencing with the SMTP queue becoming stuck after certain error conditions were encountered.

- Several issues with the URL Rewrite functionality have been corrected including an issue using certain trigger operators and an issue which could occur when the "Any Trigger" option was used rather than "All Triggers". If the global __rewrite_debug__ is set to true then the URL Rewrite system will output detailed debugging information to the console.

- The [Locale_Format] tag will now output an error if a string is passed to it. [6236]

- Database Browser - The "Copy Data" option for Duplicate Table will now work if both tables are on the same MySQL host.

- Database Browser - It is now possible to select a different key field in the Browse section of the Database Browser.

- Dates within the administration LassoApps should now be output in YYYY-MM-DD format by default rather than U.S. format.

- Lasso will now issue a RSET after encountering an SMTP error. This should allow Lasso to send additional messages through an SMTP connection even after a transient error has ocurred.

- An issue extracting email addresses from email headers when parentheses occur in the header has been corrected. This affects both the [Email_Extract] tag and also the automatic email address extraction performed by the member tags of [Email_Parse].

- The [Image->Histogram] tag should now work properly. The [Image->Annotate] tag should now be able to find fonts properly.

- The [Image->AddComment] tag with no parameter or a null parameter should now properly strip comments from the image.

- The [Image] tags should now be installed properly on Mac OS X 10.3.9.

- The date tags can now handle dates later than 2038 again. This issue was introduced in Lasso 8.5 and does not affect earlier versions of Lasso 8. An issue with date difference calculations has been corrected. And, an issue with the day of the week being off by one has been corrected. [6246]

- An issue where the [Iterate] ... [/Iterate] tag would return different results than it did in previous versions of Lasso has been corrected. [6230]

- The sign of the [Duration] type should now be correct in all situations. [6178]

- The MySQL data source connector should now properly close connections when nested inlines are used. [6196]

- FileMaker Server Advanced data sources should now properly recognize multiple -SortField parameters and should properly respect the -SortOrder parameter. [6134]

- An issue which could cause the Spotlight data source connector to crash LassoService on Mac OS X 10.4 Tiger has been corrected. [6162]

- An issue which could cause the [PDF_Doc] tag to return an "LPExecuteBytes" error has been corrected. [6174]

- An issue with the Rewrite URL system not properly recognizing the [Server_Port] or [Respond_FilePath] tokens has been corrected.

- An issue with the LJAPI typeAddMemberTag() function has been corrected.

- Scheduled Events should now report errors better. An issue which could cause scheduled events to fail if the date format had been set globally has been corrected (credit to Clive Bruton).

- When sending email, Lasso will now default to CRAM-MD5 authentication if it is available. The SMTP timeout behavior has been improved.

- An issue with the [Email_Send] tag which could cause a syntax error if a message included an -HTMLImages parameter, but no -Body parameter (text part), has been corrected.

- Several issues with the email queue interface in Site Admin have been corrected. The timeout parameter is now read properly and an option to use SSL encryption when it is available on remote SMTP servers has been added.

- Fixed a problem where failures which occurred within an implicit invoke call would not be seen.


================================
Copyright  2007 LassoSoft, LLC. All rights reserved.
